This invention concerns a group object in a control network system, and a control system and a control unit using such a group object.
There is often a necessity in the market where a plurality of devices (specially control devices) such as PLC are connected with each other to cooperate and conduct specific target jobs.
For example, a plurality of control devices 1a, 1b, 1c are connected with each other to the network which is built by the decentralized object technologies as shown in FIG. 1(a). In the first through fourth devices 1a-1d, a control object 3 is installed. The control object 3 consists of an object request broker (ORB) 2 which defines the interface specification between the programs, and the control object 3 which sends the messages to other control devices, and sends an operation command (control command) to the currently connected functional device with this control device in order to operate the functional device properly.
When a cooperation control such as a synchronous control, an exclusive control or a sequential control is carried out in a control system among a plurality of control devices 1a through 1d, a communication program must be installed in the control devices which communicate with the other control devices. The actual addresses of the other control devices lined together must be set up in such a communication program. For example, when the four control devices 1a-1d are linked together for the operational cooperation control, it is necessary for the first control device 1a to communicate with the other control devices 1b-1d by duplex communication which requires the actual addresses of these control devices.
By the above method, the control object 3 of the first device 1a can communicate with the control objects of the other control devices 1b-1d directly. This enables for control device 1a to know the current status of the other control devices, and it brings the actual operational cooperation control with each other.
After the control system is established, it often happens that some portion of the system must be modified. For example, such modification is needed when a control device in a system needs to be added or deleted. In such a case, we will experience the following problems.
Let""s assume that we need to delete the fourth control device 1d from the network. After we modify the network, only control devices 1a-1c will cooperate with each other thereafter as shown in FIG. 1(b). The first control device 1a is currently installed with a duplex communication program to communicate with the fourth control device 1d, and the control object 3 of the first control device 1a receives the communication information from the fourth control device id to conduct the various controls to the devices connected to the first control device 1a. 
It is, therefore, necessary for the control object 3 of the first control device 1a to modify their own communication programs and other control programs which are affected by the fourth control device 1d when the fourth control device 1d is deleted. This is also true in other control devices (in the figure, second and third control devices). If adding a new control device to the system, the modification of other control devices is needed as above. It is, thus, a problem in the maintenance of the system because the various programs must be modified which currently cooperate each other. This drives the maintenance cost upwards.
FIG. 4 shows the system cooperation control in which four control devices cooperate with each other. In the actual system, more control devices are used, so the problem mentioned above becomes more serious.
This invention is made in light of the problem mentioned above.
The object of this invention is to solve the problem, and to make the system maintenance easier, and allow easier modification of the system.
Another object of this invention is to provide the group object and control system, which achieve a real time cooperation control even when the network becomes large.
To achieve the object above, this control system according to claim 4 is a cooperation control system which allows controlling a plurality of control devices simultaneously, which are connected to a network. In this system, a plurality of control devices are divided into a plurality of sub-groups each of which cooperates with each other. The group object controls the sub-group. The plurality of control devices within the sub-group communicate with the group object and they are controlled by the group object.
A plurality of control devices within the same cooperation control are connected to the group object. This means that the group object functions as a managing device. In other words, each group object controls only the devices which are in cooperation control even when many control objects are connected to the network. This makes the load of the group object smaller, and the maintenance of the object group quicker in real time.
Since the individual control device sends a request or a message to the group object and it is controlled by the command of the group object which functions as a managing device, the individual control device does not need to know the status of the other control devices in the same group for the cooperation control in the system. When a new cooperation control group is added into the network after the system is established, it is not necessary to change the protocol and other system in the existing devices. This makes the system change quicker and easier.
The following is an actual configuration of this group object (managing device). A group object for synchronized control is used to control a plurality of control devices connected to a network. It comprises 1) a communication means to communicate with the control devices to be synchronized which are present among a plurality of other control devices, 2) a memory unit for event list to memorize the event request (in this embodiment, the Event-Wait-Message), and 3) a message generating means to generate a message of event permission to a control device which is requesting a same event as the event to be processed. The request of events from the control devices are stored in the above described memory unit. In the following embodiment, the event permission is sent to a control device that previously sent an event pattern in the Event-Wait-Message which matches the event pattern registered in the event flag.
In the group object, the event information about an event to be processed is stored as an event flag. When a control device wishes to execute a specific event process, it will send the event request for the specific process to the group object. The group object stores the event request in the memory unit for the event list. When a new event flag is registered or renewed in the group object, the group object will detect a specific control device in the event list which sent the same event request as the event flag, and send an event permission to the control device. All control devices which received such event permission will start processing of the event simultaneously. The synchronized control is processed as explained above.
Another type of group object is for exclusive control used to control a plurality of control devices connected to a network exclusively. This type of group object comprises 1) a communication means to communicate with the control devices to be controlled exclusively which are present among a plurality of other control devices, 2) a memory unit to memorize the maximum number of possible devices which are allowed to activate together (in this embodiment, a semaphore counter), 3) a message generating means to generate a message of event permission to a control device which requests a permission to activate, and the judgement is done based on the number of possible devices memorized in the above memory unit when the request of activation (in the embodiment, called as a Semaphore-Obtaining-Message) is received by the group object, 4)renewal means to renew the number of possible devices in the above memory unit.
In the memory unit, the maximum number of devices which are allowed to activate together is stored. When a control device wishes to activate, it will send a request of activation to the group object. The group object, then, judges if the request of activation is acceptable or not based on the maximum number of possible devices. If yes, the group object will send back the message of event permission to the control device which is requesting permission to activate. If there are already more currently activating devices than the preset maximum number, the group object will not increase the activating devices by judgement based on the maximum number of possible devices, and send a message of rejection. Thus the exclusive control will be executed. The judgement is performed not only at the time of receiving the request, but also within the certain time interval after the receiving the request (this is called as semaphore waiting time). In other words, it includes every thing to judge the permission/rejection based on the result that the request of permission is received.
Yet another type of group object is for sequential control used to control a plurality of control devices connected to a network sequentially. This type of group object comprises 1) a communication means to communicate with the control devices to be controlled sequentially which are present among a plurality of other control devices, 2) a memory unit to memorize the sequential list which defines the sequence of process, 3) a message generating means to generate a message for sequential execution to the control devices based on the sequential list which is stored in the memory unit at the time of receiving the request of sequential control.
The group object can know the sequence of the activation based on the sequential list of which control device should be activated next. When the request of activation is received by the group object, the group object will send an activation command to the control device which is at the top of the sequential list. When the execution is completed at the control device, the group object will send another activation command to the next control device. Since the activation command will be sent according to the sequential list, it is possible to carry out the sequential control. The timing to send an activation command is after the group object receives a message of completion from a control device, but it is not always limited to this timing in this invention. If the group object knows the execution time of an individual control device, the group object will send a next activation command after the interval time between an activation request from a control device and a next activation request from a next control device has elapsed.